Scratch, qu'est-ce que c'est ?
Durée estimée: 90 minutes
"Imaginer, Programmer, Partager"
Sratch propose d'aborder la programmation pour donner corps à son imagination en réalisant des jeux.
La programmation est un moyen, pas un but en soi.
Scratch est un langage graphique facile d'accès. Son look pourra vous paraitre "enfantin", donc peut-être pas pour vous ? Eh bien si!
Scratch est utilisé par 33 millions de personnes ... dont les lycéens aux USA. Les cours Scratch ECS (Exploring Computer Science) donnent des points bonus à leurs dossiers de candidature aux universités.
Si vous envisagez de devenir médiateur numérique ou animateur, vous verrez que Scratch est un outil formidable pour animer et enseigner. C'est du "hard fun" : c'est fun mais c'est quand même dur d'apprendre.
Dans ce cours, nous n'allons pas nous attarder sur Scratch (nous passerons à App Inventor, son voisin au MIT), mais sur le fond, Scratch permet d'aborder les concepts essentiels de l'algorithmie et de la programmation :
- les notions de séquence, d'itération et de branchement conditionnel,
- la programmation évènementielle, les scripts,
- la notion d'abstraction (procédurale ou de données),
- le design et la conception,
- les listes et l'organisation des données,
- la synchronisation par des messages,
- la robotique et les objects connectés,
- etc.
Vous pourrez continuer (en cliquant ici ) avec la série d'exercices présentés plus bas.
Commencer par un exemple
Si vous suivez ce cours en présentiel (CNAM), votre enseignant vous proposera de réaliser un jeu en même temps que lui. Par exemple Ghostbuster.Créer un compte
Si vous utilisez Scratch sans créer de compte, vous ne pourrez pas enregistrer ni partager vos projets. Vous en aurez besoin dans ce cours. Créez un compte en suivant les indications ci-dessous ou à cette adresse :
- rendez vous sur le site internet de Scratch https://scratch.mit.edu
- cliquez sur "rejoindre Scratch" en haut à droite
- choisissez un nom utilisateur (pseudo), un mot de passe et confirmez-le,
- donnez des indications sur vous (comme vous l'entendez),
- et une adresse courriel (de préférence l'adresse Gmail que vous utiliserez dans la suite du cours),
- puis allez sur la boite mail coorrespondante et cliquez sur le lien pour valider votre compte. Vous pouvez ensuite vous connecter avec le nom ou pseudo que vous avez choisi et le mot de passe.
- Vous pouvez ensuite créer un projet Scratch et l'enregistrer ou charger un projet existant, à partir de son adresse ou URL, par exemple https://scratch.mit.edu/projects/171693340/. Pour l'enregistrer vous devrez alors cliquer sur le bouton Remix.
Partager un projet
Pour partager un projet, il est nécessaire d'avoir un compte. Depuis l'éditeur, cliquez sur le bouton "partager".
Ecrivez vos explications dans les cases "Instructions" et "Notes et contributeurs" puis cliquez sur le bouton copier le lien en bas à droite.
L'écran qui suit, affiche
- le lien que vous pouvez envoyer à vos amis et aux enseigannts
- et un pargraphe html que vous pourrez copier dans votre portfolio ou site Web (nous verrons comment l'utiliser un peu plus tard).
Quelques exercices pour démarrer
Avancez selon le temps imparti par votre enseignant. Si vous avez trop de difficultés avec un niveau, la solution de chaque niveau est donnée au début du niveau suivant.
La série suivante propose le développement par étape d'un jeu de voiture. Elle a pour objectif d'utiliser les concpepts de base. Dans le cours nous n'utiliserons qu'une partie de ces exercices (ou peut-être d'autres ressources), mais cette série a l'avantage de définir et d'expérimenter les concepts de base.
- une 1° version pour dessiner un circuit et y faire circuler une voiture,
(Vous pouvez partir de https://scratch.mit.edu/projects/175146528/).
ce qui permet de voir :- le dessin (en mode pixel ou raster),
- les scripts et séquences d’instructions ordonnées,
- les blocs de branchement conditionnel,
- les capteurs et tests associée : couleur touchée
- la correspondance entre la couleur des blocs et leur catégorie
- la correspondance entre la forme des blocs et leur rôle ou leur assemblage
- une 2° version : faites avancer la voiture en continu et régler la vitesse avec les flèches haut/bas:
(Vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/171693340/).
ce qui permet de voir :- les boucles infinies
- les variables
- les opérateurs mathématiques (+,-) et la mise à jour des variables
- les tests avec les opérateurs mathématiques < et >
- la négation logique
- une 3° version : corrigez les anomalies, gérez le nombre de vies et chronométrez le tour
(Vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/171693493/).
ce qui permet de voir :- les sons,
- le nombre de vies,
- la perte de vies quand la voiture sort de la route, et la fin du jeu,
- l'utilisation d'un chronomètre pour mesure le temps d'un tour.
- une 4° version : accélérez en fonction de la distance au pointeur de la souris,
(Vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/171778274/).
ce qui permet de voir :- l'ergonomie,
- les capteurs de type physique comme la distance,
- l'utilisation des opérateurs mathématiques pour faire une règle de trois et calculer la variable vitesse.
- une 5° version : comptez les tours, et empêchez les joueurs de tricher en les obligeant à faire le tour.
(Vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/172642723/).
ce qui permet de voir :- le Debug et le traçage du code pas à pas pour comprendre et corriger,
- le caractère dynamique des tests dans une boucle,
- l'utilisation d'une variable d'état et d'un 2° lutin pour contrôler le comportement du programme.
- une 6° version : pour simplifier/décomposer le code et utiliser des procédures
(vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/174874637/).
ce qui permet de voir :- la décomposition en fonctions,
- l'abstraction procédurale,
- la notion de qualité logicielle et demodularité,
- la documentation.
- une 7° version : ajoutez un monstre qui démarrer après la voiture et la poursuit pour l'avaler
(Vous pouvez partir du précédent ou de https://scratch.mit.edu/projects/175231429/).
ce qui permet de voir la synchronisation par messages.
Scratch est un excellent support pédagogique que vous pourrez utiliser si vous devenez animateur ou médiateur numérique.
Une des caractéristiques de Scratch est d'éviter les fastidieuses erreurs de
syntaxe propres aux langages classiques (python, javascript, ...). L'exécution du code est instantanée, ce qui favorise les dévelopements par essais-erreurs.
Scratch a été développé au sein du MIT Media Lab par le groupe de Mitchel Resnick dans la lignée des travaux de Seymour Papert et de Jean Piaget.
Scratch est gratuit et utilisable en ligne avec un simple navigateur.
Vous pouvez aussi l'installer sur votre poste et l'utiliser sans internet. Scratch dispose d'extensions vers la robotique et les interactions physiques du monde réel.